/**
 * 实现各独立功能点
 */
import { Service } from '@gnlab/utils'
import type { Services } from '@/services'
import { Accounts } from './accounts'
import { AutoApplyContact } from './auto-apply-contact'
import { AutoClearContacts } from './auto-clear-contacts'
import { AutoConfirMassMessage } from './auto-confirm-mass-message'
import { AutoTransfer } from './auto-transfer'
import { ChatFlows } from './chat-flows'
import { ChatSidebars } from './chat-sidebars'
import { CodeJoinGroups } from './code-join-groups'
import { CorpWhitelistSrv as CorpWhitelist } from './corp-whitelist'
import { DescribeToTags } from './describe-to-tags'
import { GroupBatchApply } from './group-batch-apply'
import { GroupMonitorApply } from './group-monitor-apply'
import { NewRank } from './new-rank'
import { NormalWelcome } from './normal-welcome'
import { PersonCardAutoApply } from './person-card-auto-apply'
import { Robot } from './robot'
import { SendMoment } from './send-moment'
import { SensitiveIntercepts } from './sensitive-intercepts'
import { SensitiveWarns } from './sensitive-warns'
import { ThirdApps } from './third-apps'
import { VoiceToText } from './voice-to-text'
import { WebConfigSrv } from './web-config'
import { WelcomeMessages } from './welcome-messages'

export class Features extends Service<Services> {
  robot = new Robot()
  webConfig = new WebConfigSrv()
  accounts = new Accounts()
  autoTransfer = new AutoTransfer()
  chatSidebars = new ChatSidebars()
  corpWhitelist = new CorpWhitelist()
  thirdApps = new ThirdApps()
  voideToText = new VoiceToText()
  sensitiveWarns = new SensitiveWarns()
  sensitiveIntercepts = new SensitiveIntercepts()
  describeToTags = new DescribeToTags()
  groupMonitorApply = new GroupMonitorApply()
  groupBatchApply = new GroupBatchApply()
  autoClearContacts = new AutoClearContacts()
  personCardAutoApply = new PersonCardAutoApply()
  chatFlows = new ChatFlows()
  welcomeMessages = new WelcomeMessages()
  autoApplyContact = new AutoApplyContact()
  autoConfirMassMessage = new AutoConfirMassMessage()
  codeJoinGroups = new CodeJoinGroups()
  sendMoment = new SendMoment()
  newRank = new NewRank()
  normalWelcome = new NormalWelcome()
}
